package com.tanhua.server.controller;

import com.tanhua.model.vo.SoulQuestionVo;
import com.tanhua.model.vo.SoulReportVo;
import com.tanhua.server.service.TestSoulService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.text.ParseException;
import java.util.List;
import java.util.Map;

/**
 * @Description：test
 * @Create by： 张会豪
 * @Date：2021/11/8 0:15
 */
@RestController
@RequestMapping("/testSoul")
public class TestSoulController {

    @Autowired
    private TestSoulService testSoulService;

    /**
     * 测灵魂-问卷列表
     * 请求方式和路劲：GET/testSoul
     * 请求参数：无
     * 响应数据：SoulQuestionVo
     */
    @GetMapping
    public ResponseEntity testSoulList() {
        //1、调用service执行业务
        List<SoulQuestionVo> vos = testSoulService.testSoulList();
        //2、响应数据
        return ResponseEntity.ok(vos);
    }

    /**
     * 测灵魂-提交问卷
     * 请求方式和路径：POST/testSoul
     * 请求参数：Body answers Object[]  questionId【试题编号】\String  optionId【选项编号】\String
     * 响应数据：string 【报告id】
     */
    @PostMapping
    public ResponseEntity submitTestSoul(@RequestBody Map<String, List<Map<String, Long>>> answers) throws ParseException {
        //1、接收参数，调用service执行业务
        String reportId = testSoulService.submitTestSoul(answers);
        //2、响应数据
        return ResponseEntity.ok(reportId);
    }

    /**
     * 测灵魂-查看结果
     * 请求方式和路径：GET/testSoul/report/:id
     * 请求参数：请求参数 id: 【报告id】
     * 响应数据：SoulReportVo
     */
    @GetMapping("/report/{id}")
    public ResponseEntity report(@PathVariable("id") String id) {
        //1、接收参数，调用service执行业务
        SoulReportVo vo = testSoulService.report(id);
        //2、响应数据
        return ResponseEntity.ok(vo);
    }
}
